package api

import (
	"cmall/pkg/logging"
	"cmall/service"

	"github.com/gin-gonic/gin"
)

// @Summary  创建订单
// @Description 订单创建接口
// @Tags 商品操作
// @Accept json
// @Param data body service.CreateOrderService true "演示参数"
// @Produce json
// @Success 200
// @Router /orders [post]
func CreateOrder(c *gin.Context) {
	service := service.CreateOrderService{}
	if err := c.ShouldBind(&service); err == nil {
		res := service.Create()
		c.JSON(200, res)
	} else {
		c.JSON(200, ErrorResponse(err))
		logging.Info(err)
	}
}

// @Summary 订单详情列表
// @Description 订单详情列表接口
// @Tags 商品操作
// @Accept json
// @Param id path int true "用户id"
// @Produce json
// @Success 200
// @Router /user/{id}/orders [get]
func ListOrders(c *gin.Context) {
	service := service.ListOrdersService{}
	if err := c.ShouldBind(&service); err == nil {
		res := service.List(c.Param("id"))
		c.JSON(200, res)
	} else {
		c.JSON(200, ErrorResponse(err))
		logging.Info(err)
	}
}

// @Summary 订单详情
// @Description 订单详情接口
// @Tags 商品操作
// @Accept json
// @Param num path int true "订单id"
// @Produce json
// @Success 200
// @Router /orders/{num} [get]
func ShowOrder(c *gin.Context) {
	service := service.ShowOrderService{}
	if err := c.ShouldBind(&service); err == nil {
		res := service.Show(c.Param("num"))
		c.JSON(200, res)
	} else {
		c.JSON(200, ErrorResponse(err))
		logging.Info(err)
	}
}
